/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package fi.uba.algo3.tp3.modelo.inanimados;

import fi.uba.algo3.tp3.modelo.notificaciones.StateNotification;
import fi.uba.algo3.tp3.modelo.servicios.ServicioJuego;

/**
 *
 * @author ariel
 */
public class PuntoBonus extends Punto{

    /*El punto bonus es una sucesión de bonus que aparecen en orden
    y que varían su imagen y la cantidad de puntos otorgados, por
    lo cual se me ocurrió mantener este orden en una variable de la clase*/

    public final static int PUNTOS_BASICOS = 100;
    
    private static int nro_bonus_total = 0;

    private int nro_bonus;

    /** para ser usado con el parser de XML*/
    public PuntoBonus(int x, int y) {
        super(x,y);
        this.aumentarNro();
    }

    public PuntoBonus(int x, int y, ServicioJuego servicio) {
        super(x,y,servicio);
        this.aumentarNro();
    }

    public void aumentarNro(){
        PuntoBonus.nro_bonus_total++;
        this.nro_bonus = PuntoBonus.nro_bonus_total;
        this.setPuntosAOtorgar(this.nro_bonus*PUNTOS_BASICOS);
    }

    public int getNro(){
        return this.nro_bonus;
    }

    public void desactivado() {
        comido=Boolean.TRUE;
        observador.notificar(StateNotification.MUERTO);
    }
    
    public void activar() {
        comido=Boolean.FALSE;
        observador.notificar(StateNotification.NORMAL);
    }

    @Override
    public void serComido() {
         if (!fueComido()) {
            this.comido = true;
            this.aumentarNro();
            observador.notificar(StateNotification.MUERTO);
            this.getServicio().bonusFueComido();
            this.getServicio().aumentarPuntosJugador(puntosOtorgados);
        }
    }

    @Override
    public void restablecer() {}

}
